package tech.aistar.day12.homework;

import tech.aistar.day12.Purcase;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Iterator;
import java.util.List;

/**
 * 本类用来演示: OO
 *
 * @author: success
 * @date: 2022/8/4 8:44 上午
 */
public class PurcaseDaoImpl extends BaseDaoImpl<Purcase> implements PurcaseDao{
    @Override
    public void deByPrice(double price) {
        //1. 尝试获取获取文件中是否存在数据
        List<Purcase> oldList = getAll();

        //2. 在内存中进行删除
        if(null!=oldList && oldList.size()>0){
            Iterator<Purcase> iter = oldList.iterator();
            while(iter.hasNext()){
                Purcase p = iter.next();
                if(p.getCost()>=price){
                    iter.remove();//集合迭代器的删除.
                }
            }

            //是否删除成功 - oldList已经是删除之后的数据
            //覆盖写 - 为什么不是直接调用save

            //重新new -> 重新清空文件了.
            try(ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(PATH))){
                out.writeObject(oldList);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
